package org.ytor.core.sysapi.dynamicsql.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ytor.common.util.bean.Beans;
import org.ytor.core.sqlflow.PersistenceModel;
import org.ytor.core.sysapi.dynamicsql.resp.DynamicSqlConfigResp;

/**
 * created by   on 2025年5月22日 13:10:52
 * <br/>
 * DynamicSqlConfig表实体类
 * <br/>
 */
@Data
@Schema(description = "dynamic_sql_config")
@EqualsAndHashCode(callSuper = true)
public class DynamicSqlConfig extends PersistenceModel<DynamicSqlConfig, String> {

    /**
     * api唯一编码
     */
    @Schema(description = "api唯一编码")
    private String apiCode;

    /**
     * api访问路径
     */
    @Schema(description = "api访问路径")
    private String apiPath;

    /**
     * api访问路径
     */
    @Schema(description = "api访问方法")
    private String apiMethod;

    /**
     * 动态sql片段
     */
    @Schema(description = "动态sql片段")
    private String sqlXml;

    /**
     * 查询数据最大条数
     */
    @Schema(description = "查询数据最大条数")
    private Integer queryLimit;

    /**
     * 返回结果类型
     */
    @Schema(description = "返回结果类型")
    private String resultType;

    /**
     * 返回结果说明
     */
    @Schema(description = "返回结果说明")
    private String resultRemark;

    /**
     * 参数类型
     */
    @Schema(description = "参数类型")
    private String parameterType;

    /**
     * 参数示例
     */
    @Schema(description = "参数示例")
    private String parameterJson;

    /**
     * 参数说明
     */
    @Schema(description = "参数说明")
    private String parameterRemark;

    /**
     * 访问该接口是否需要认证
     */
    @Schema(description = "访问该接口是否需要认证")
    private Boolean authFlag;


    @Override
    public DynamicSqlConfigResp toResp() {
        return Beans.copyProperties(this, DynamicSqlConfigResp.class);
    }
}